home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-12-17 | 9.0 KB | 276 lines | [TEXT/R*ch] |
- // DSeqDoc.h
- // d.g.gilbert, 1990-1994
-
- #ifndef _DSEQDOC_
- #define _DSEQDOC_
-
- #include "DSequence.h"
- #include "DSeqList.h"
- #include <DTableView.h>
- #include <DWindow.h>
- #include <DMethods.h>
- #include <DREnzyme.h>
-
-
- class DSeqDoc;
- class DPrompt;
- class DPopupList;
- class DCheckBox;
- class DMenu;
- class DAlnSequence;
- class DAlnSlider;
-
-
- class DAlnView : public DTableView
- {
- public:
- DSeqList * fSeqList;
- DSeqDoc * fDoc;
- DAlnSequence * fEditSeq;
- short fEditRow, fMaskLevel;
- Boolean fLocked, fOwnSeqlist;
- DAlnSlider * fSlider;
- DSequence * fCurSeq; // temp used in draw, elsewhere?
- enum { kindAlnView = 23345, idAlnView = 22902 };
- enum viewmodes { kModeSlide,kModeEdit,kModeMask1,kModeMask2,kModeMask3,kModeMask4 };
-
- DAlnView( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
- virtual ~DAlnView();
-
- virtual DSequence* SeqAt( short aRow)
- {
- if (fSeqList) return fSeqList->SeqAt(aRow);
- else return NULL;
- }
-
- virtual void Click(Nlm_PoinT mouse);
- virtual void Drag(Nlm_PoinT mouse);
- virtual void Hold(Nlm_PoinT mouse);
- virtual void Release(Nlm_PoinT mouse);
- virtual void DoubleClickAt(short row, short col);
- virtual void SingleClickAt(short row, short col);
- virtual DSequence* SelectedSequence(short& selectedRow);
- virtual DSequence* SelectedSequence() {
- short selectedRow; return SelectedSequence(selectedRow);
- }
- virtual void Scroll(Boolean vertical, DView* scrollee, short newval, short oldval);
-
- virtual void UpdateWidth( DSequence* aSeq);
- virtual void UpdateAllWidths(void);
- virtual void UpdateSize(void);
-
- virtual void addToAlnList( DSequence* aSeq);
- virtual void registerInsertLast( DSequence* aSeq);
- virtual void MakeConsensus();
- virtual char* FindCommonBases( short minCommonPerCent);
- virtual void HiliteCommonBases();
- virtual void HiliteORFs();
-
- virtual void DeInstallEditSeq();
- virtual void InstallEditSeq(short row, short selStart, short selEnd, Boolean doLight);
- virtual void SetTextLock( Boolean turnon);
- virtual void SetViewMode( short viewmode);
-
- virtual void TrackMouse( short aTrackPhase,
- Nlm_PoinT& anchorPoint, Nlm_PoinT& previousPoint,
- Nlm_PoinT& nextPoint, Nlm_Boolean mouseDidMove);
- virtual void TrackFeedback( short aTrackPhase,
- const Nlm_PoinT& anchorPoint, const Nlm_PoinT& previousPoint,
- const Nlm_PoinT& nextPoint, Nlm_Boolean mouseDidMove, Nlm_Boolean turnItOn);
-
- virtual void Resize(DView* superview, Nlm_PoinT sizechange);
- virtual void GetReadyToShow();
- virtual void Show();
- virtual void DrawAlnInStyle(baseColors colors, Boolean swapBackColor,
- char* pText, long indx, long len, short row);
- virtual void DrawAlnColors(baseColors colors, Boolean swapBackColor,
- char* pText, long indx, long len, short row);
- virtual void DrawNoColors(Nlm_RecT r, short row);
- virtual void DrawAllColors(Nlm_RecT r, short row);
- virtual void DrawRow(Nlm_RecT r, short row);
- virtual void Draw();
-
- //virtual Boolean ContainsClipType(ResType aType); // override
- //virtual void WriteToDeskScrap(void); // override
-
- //virtual void DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event, Point hysteresis); // override
- //virtual Boolean HandleMouseDown( VPoint theMouse, TToolboxEvent event, hysteresis: Point); // override
- };
-
-
- class DAlnITitle : public DTableView
- {
- public:
- short fNameWidth, fSizeWidth, fKindWidth; //max #chars in name column
- DAlnITitle( long id, DView* itsSuper, long pixwidth, long pixheight);
- virtual void GetReadyToShow();
- virtual void Click(Nlm_PoinT mouse);
- virtual void DoubleClickAt(short row, short col);
- virtual void SingleClickAt(short row, short col);
- virtual void DrawCell(Nlm_RecT r, short row, short col);
- };
-
- class DAlnIndex : public DTableView
- {
- public:
- DSeqList* fSeqList; // NOTE: TSeqListDoc "owns" this list
- DSeqDoc* fDoc; // our owner
- short fNameWidth, fSizeWidth, fKindWidth; //max #chars in name column
-
- DAlnIndex( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
- virtual void Click(Nlm_PoinT mouse);
- virtual void Drag(Nlm_PoinT mouse);
- virtual void Hold(Nlm_PoinT mouse);
- virtual void Release(Nlm_PoinT mouse);
- virtual void DoubleClickAt(short row, short col);
- virtual void SingleClickAt(short row, short col);
- virtual void Scroll(Boolean vertical, DView* scrollee, short newval, short oldval);
- virtual void GetReadyToShow();
- virtual void Show();
- virtual char* GetItemTitle(short item, char* title = NULL, size_t maxsize = 256);
- virtual void DrawCell(Nlm_RecT r, short row, short col);
- };
-
- class DAlnHIndex : public DPanel
- {
- public:
- DSeqList* fSeqList; // NOTE: TSeqListDoc "owns" this list
- DSeqDoc* fDoc; // our owner
-
- DAlnHIndex( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
- virtual void Resize(DView* superview, Nlm_PoinT sizechange);
- virtual void Drag(Nlm_PoinT mouse);
- virtual void Hold(Nlm_PoinT mouse);
- virtual void Release(Nlm_PoinT mouse);
- virtual void Click(Nlm_PoinT mouse);
- virtual void Scroll(Boolean vertical, DView* scrollee, short newval, short oldval);
- virtual void Draw();
- };
-
-
-
- class DSeqFormatPopup;
- class DAlnModePopup;
-
- class DSeqDoc : public DWindow, public DSaveHandler, public DPrintHandler
- {
- public:
-
- enum sdTasks {
- kSeqdoc = 310,
- kSeqMenu, kInternetMenu,
- cSeqPrefs, cNewSeq, cEditSeq, cSaveSel,
- cRevSeq,cCompSeq,cRevCompSeq,cDna2Rna,cRna2Dna,cToUpper,cToLower,cDegap,
- cLockIndels,cUnlockIndels,cConsensus,cTranslate,
- cPrettyPrint,cREMap,cDotPlot,cNAcodes, cAAcodes,
- cFindORF,
-
- cNCBIfetch, cNCBIblast,
- cEMBLfetch, cEMBLfasta, cEMBLblitz, cEMBLquicks,
- cFHCRCfetch, cFHCRCblocks,
- cGeneidSearch, cGenmarkSearch, cGrailSearch,cPythiaSearch,
-
- kViewKindMenu, kViewByDefault,kViewByDate,kViewBySize,kViewByName,kViewByKind,kViewAsText,
- kSeqMaskMenu, cMaskSelCommon,cMaskSelORF, cMaskSelAll,cMaskInvert,cMaskClear,
- kModePopup,
- kLockButHit, kColorButHit, kMonoButHit
- };
-
- static Boolean fgTestSeqFile, fgUseColor, fgLockText, fgStartDoc;
- static short fgViewMode;
- static Nlm_RecT fgWinRect;
- static void GetGlobals();
- static void SaveGlobals();
- static void NewSeqDoc();
-
- DSeqList * fSeqList;
- DAlnView * fAlnView;
- DAlnIndex * fAlnIndex;
- DAlnHIndex * fAlnHIndex;
- DAlnITitle * fAlnITitle;
- DPrompt * fHeadline; //seqlist header
- DSeqFormatPopup * fFormatPop; //seq output format
- DAlnModePopup * fModePop;
-
- long fUpdateTime; //time of last .showreverted/.updateFlds
- short fInFormat; //file input format
- Boolean fSaveSelection, fUseColor;
- DCheckBox * fColorCheck, * fLockCheck;
- //DIconButton * fLockButton, * fColorButton, * fMonoButton;
- DWindow * fPrintDoc;
- char * fDocTitle;
-
- DSeqDoc( long id, DSeqList* itsSeqList, char* name = NULL);
- virtual ~DSeqDoc();
-
- static Boolean IsSeqFile(DFile* aFile);
- static void SetUpMenu(short menuId, DMenu*& aMenu); // !! can't do virtual statics !!
-
- virtual void Save(DFile* f) { WriteTo( f); } // revise for iostreams
- virtual void WriteTo (DFile* aFile = NULL); // revise for iostreams
- virtual Boolean ReadFrom(DFile* aFile = NULL, Boolean append = true); // revise for iostreams
-
- virtual void Open();
- virtual void Open(DFile* aFile);
- virtual void Close();
- virtual void ResizeWin();
- virtual void Activate();
- virtual void Deactivate();
- virtual void ProcessTask(DTask* theTask);
- virtual Boolean IsMyTask(DTask* theTask);
- virtual Boolean DoMenuTask(long tasknum, DTask* theTask);
- virtual Boolean IsMyAction(DTaskMaster* action);
- virtual void FreeData();
- virtual char* GetTitle(char* title, ulong maxsize);
-
- virtual void MakeGlobalsCurrent();
- virtual void SortView( DSeqList::Sorts sortorder);
- virtual void ToTextDoc();
-
- ////
-
- virtual void AddSeqToList(DSequence* item);
- virtual void AddNewSeqToList();
- virtual Boolean IsEmpty() {
- if (fSeqList) return fSeqList->IsEmpty();
- else return true;
- }
-
- //virtual void DoSeqSelectCommand(); //override this to open sequences selected w/ dblclk
- //virtual void ShowReverted(); // override
- //virtual void DoMakeViews(Boolean forPrinting); // override
-
- ////
-
- // revise for iostreams !?
- virtual short SelectionToFile(Boolean AllatNoSelection,
- char* aFileName, short seqFormat); //return # written
-
- virtual void GetSelection(Boolean equalCount, Boolean allAtNoSelection,
- DSeqList*& aSeqList, long& start, long& nbases);
- virtual void FirstSelection( DSequence*& aSeq, long& start, long& nbases);
- virtual void OpenSeqedWindow(DSequence* aSeq);
- virtual void EditSeqs();
- virtual void FindORF();
- virtual void MakeConsensus();
- virtual void MakeSeqPrint(Boolean doREMap);
- virtual void MakeAlnPrint();
- virtual void Print();
-
- //virtual void DoEvent(EventNumber eventNumber, TEventHandler source; TEvent event) // override
- //virtual void DoMenuCommand(short aCommandNumber); // override
- //virtual void DoSetupMenus(); // override
-
- private:
- void AddSeqAtToList( short aRow, long start1, long nbases1,
- DSeqList*& aSeqList, long& start, long& nbases);
- };
-
-
- extern char* gDefSeqName;
-
-
-
-
- #endif //_DSEQDOC_
-